package interpreteur.action;

import interpreteur.*;

public class Si extends Foncteur {

    private final Foncteur pPredicat;
    private final Foncteur pAction1,  pAction2;

    public Si(Foncteur pPredicat, Foncteur pAction1) {
        this.pPredicat = pPredicat;
        this.pAction1 = pAction1;
        this.pAction2 = null;
    }

    public Si(Foncteur pPredicat, Foncteur pAction1, Foncteur pAction2) {
        this.pPredicat = pPredicat;
        this.pAction1 = pAction1;
        this.pAction2 = pAction2;
    }

    @Override
    public Result eval() {
        if (((Result) pPredicat.eval()).booleanResult == true) {
            pAction1.eval();
        } else {
            if (pAction2 != null) {
                pAction2.eval();
            }
        }
        return Result.NULL;
    }
}
